package com.syni.mdd.sjb.common.datatreaure.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.syni.mdd.sjb.common.component.mybatis.dxshapp.entity.DxshAppNews;
import com.syni.mdd.sjb.common.component.mybatis.dxshapp.entity.customBo.DxshAppNewsBo;
import com.syni.mdd.sjb.common.component.utils.common.utils.RpcResponseVo;
import com.syni.mdd.sjb.common.component.utils.feign.dto.mdd.sjb.common.dxshapp.CommonPushToDsxhAppDto;
import com.syni.mdd.sjb.common.datatreaure.entity.vo.rq.BaseRqVo;
import com.syni.mdd.sjb.common.datatreaure.entity.vo.rq.apiAppNews.BankNewsRqVo;
import com.syni.mdd.sjb.common.datatreaure.entity.vo.rq.apiAppNews.CreateNewsRqVo;
import com.syni.mdd.sjb.common.datatreaure.entity.vo.rq.dxshAppNews.ReceivedNewsVo;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * <p>
 * 电享生活app消息表 服务类
 * </p>
 *
 * @author cfx
 * @since 2020-04-21
 */
public interface DxshAppNewsService extends IService<DxshAppNews> {

    Map<String, Object> receivedNews(ReceivedNewsVo receivedNewsVo);

    RpcResponseVo commonPushToDsxhApp(CommonPushToDsxhAppDto commonPushToDsxhAppDto);

    Map<String, Object> getUnreadMessage(BaseRqVo baseRqVo);

    Map<String, Object> test(BaseRqVo baseRqVo);

    Map<String, Object> clearNews(BaseRqVo baseRqVo);

    RpcResponseVo commonPushToDsxhApp_v2(CommonPushToDsxhAppDto commonPushToDsxhAppDto);

    void commonPushToDsxhAppHandler(CommonPushToDsxhAppDto commonPushToDsxhAppDto);

    List<DxshAppNewsBo> countByMessageType(QueryWrapper queryWrapper);

    Integer getUserNoReadMddMessageCount(Integer userId,Integer businessId);

    Integer getUserNoReadMinAppMessageCount(Integer userId);

    Map<String, Object> getBusinessPayData(BankNewsRqVo bankNewsRqVo);

    Map<String, Object> confirmUidNews(BankNewsRqVo bankNewsRqVo);

    Map<Integer,Integer> countByMddNoReadMessage(Set<Integer> businessIds);

    Integer countByMddNoReadMessage(Integer businessId);

    DxshAppNews createNews(CreateNewsRqVo createNewsRqVo);

    Map<String, Integer> countByMinAppNoReadMessage(Set<String> storeIds);

}
